package com.probiz.estore.product.dao;

import java.util.List;

import com.probiz.estore.common.model.product.Brand;
import com.probiz.estore.common.model.product.ProductType;
import com.probiz.estore.common.model.product.SkuOption;
import com.probiz.estore.core.dao.GenericDao;
/**
 * Dao interface for ProductType.
 */
public interface ProductTypeDao extends GenericDao<ProductType> {
	
	/**
	 * 获得产品类型价格的最大值
	 * @param productTypeId
	 * @return
	 */
	public int getMaximumPriceByProductType(Integer productTypeId);
	
	 /**
     * 根据商品类型id获得关联的品牌
     * @param productTypeId
     * @return
     */
    public List<Brand> getRelatedBrand(Integer productTypeId);
    
    /**
     * 根据商品类型id获得关联的规格
     * @param productTypeId
     * @return
     */
    public List<SkuOption> getRelatedSkuOption(Integer productTypeId);
    
    /**
     * 根据商品类型名称获得商品类型实体
     * @param productTypeName 商品类型名称
     * @return 实体
     */
    public ProductType getProductTypeByName(String productTypeName);
    /**
     * 根据商品类型id获得关联的商品数
     * @param productTypeId
     * @return
     */
    public Long getProductCountByProductType(Integer productTypeId);
    /**
     * 唯一性检查
     * @param productTypeName
     * @return
     */
    public boolean isProductTypeExist(String productTypeName);
	/**
	 * 是否有其他记录使用此类型名称
	 * @param productTypeName
	 * @param productTypeId
	 * @return
	 */
	public boolean isProductTypeNameUseByOthers(String productTypeName, Integer productTypeId);
}